Decomposing a Problem for Parallel Execution